//import java.util.Date; 
//import java.util.Properties; 
//import javax.activation.CommandMap; 
//import javax.activation.DataHandler; 
//import javax.activation.DataSource; 
//import javax.activation.FileDataSource; 
//import javax.activation.MailcapCommandMap; 
//import javax.mail.BodyPart; 
//import javax.mail.Multipart; 
//import javax.mail.PasswordAuthentication; 
//import javax.mail.Session; 
//import javax.mail.Transport; 
//import javax.mail.internet.InternetAddress; 
//import javax.mail.internet.MimeBodyPart; 
//import javax.mail.internet.MimeMessage; 
//import javax.mail.internet.MimeMultipart; 
//
//
//public class Mail extends javax.mail.Authenticator { 
//  private String _user; 
//  private String _pass; 
//
//  private String[] _to; 
//  private String _from; 
//
//  private String _port; 
//  private String _sport; 
//
//  private String _host; 
//
//  private String _subject; 
//  private String _body; 
//
//  private boolean _auth; 
//
//  private boolean _debuggable; 
//
//  private Multipart _multipart; 
//
//
//  public Mail() { 
//    _host = "smtp.gmail.com"; // default smtp server 
//    _port = "465"; // default smtp port 
//    _sport = "465"; // default socketfactory port 
//
//    _user = ""; // username 
//    _pass = ""; // password 
//    _from = ""; // email sent from 
//    _subject = ""; // email subject 
//    _body = ""; // email body 
//
//    _debuggable = false; // debug mode on or off - default off 
//    _auth = true; // smtp authentication - default on 
//
//    _multipart = new MimeMultipart(); 
//
//    // There is something wrong with MailCap, javamail can not find a handler for the multipart/mixed part, so this bit needs to be added. 
//    MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap(); 
//    mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html"); 
//    mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml"); 
//    mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain"); 
//    mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed"); 
//    mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822"); 
//    CommandMap.setDefaultCommandMap(mc); 
//  } 
//
//  public Mail(String user, String pass) { 
//    this(); 
//
//    _user = user; 
//    _pass = pass; 
//  } 
//
//  public boolean send() throws Exception { 
//    Properties props = _setProperties(); 
//
//    if(!_user.equals("") && !_pass.equals("") && _to.length > 0 && !_from.equals("") && !_subject.equals("") && !_body.equals("")) { 
//      Session session = Session.getInstance(props, this); 
//
//      MimeMessage msg = new MimeMessage(session); 
//
//      msg.setFrom(new InternetAddress(_from)); 
//
//      InternetAddress[] addressTo = new InternetAddress[_to.length]; 
//      for (int i = 0; i < _to.length; i++) { 
//        addressTo[i] = new InternetAddress(_to[i]); 
//      } 
//        msg.setRecipients(MimeMessage.RecipientType.TO, addressTo); 
//
//      msg.setSubject(_subject); 
//      msg.setSentDate(new Date()); 
//
//      // setup message body 
//      BodyPart messageBodyPart = new MimeBodyPart(); 
//      messageBodyPart.setText(_body); 
//      _multipart.addBodyPart(messageBodyPart); 
//
//      // Put parts in message 
//      msg.setContent(_multipart); 
//
//      // send email 
//      Transport.send(msg); 
//
//      return true; 
//    } else { 
//      return false; 
//    } 
//  } 
//
//  public void addAttachment(String filename) throws Exception { 
//    BodyPart messageBodyPart = new MimeBodyPart(); 
//    DataSource source = new FileDataSource(filename); 
//    messageBodyPart.setDataHandler(new DataHandler(source)); 
//    messageBodyPart.setFileName(filename); 
//
//    _multipart.addBodyPart(messageBodyPart); 
//  } 
//
//  @Override 
//  public PasswordAuthentication getPasswordAuthentication() { 
//    return new PasswordAuthentication(_user, _pass); 
//  } 
//
//  private Properties _setProperties() { 
//    Properties props = new Properties(); 
//
//    props.put("mail.smtp.host", _host); 
//
//    if(_debuggable) { 
//      props.put("mail.debug", "true"); 
//    } 
//
//    if(_auth) { 
//      props.put("mail.smtp.auth", "true"); 
//    } 
//
//    props.put("mail.smtp.port", _port); 
//    props.put("mail.smtp.socketFactory.port", _sport); 
//    props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
//    props.put("mail.smtp.socketFactory.fallback", "false"); 
//
//    return props; 
//  } 
//
//  // the getters and setters 
//  public String getBody() { 
//    return _body; 
//  } 
//
//  public void setBody(String _body) { 
//    this._body = _body; 
//  }
//
//  public void setTo(String[] toArr) {
//      // TODO Auto-generated method stub
//      this._to=toArr;
//  }
//
//  public void setFrom(String string) {
//      // TODO Auto-generated method stub
//      this._from=string;
//  }
//
//  public void setSubject(String string) {
//      // TODO Auto-generated method stub
//      this._subject=string;
//  }  
//
//  // more of the getters and setters ….. 
//}
//and to call it in an activity...
//
//@Override 
//public void onCreate(Bundle icicle) { 
//  super.onCreate(icicle); 
//  setContentView(R.layout.main); 
//
//  Button addImage = (Button) findViewById(R.id.send_email); 
//  addImage.setOnClickListener(new View.OnClickListener() { 
//    public void onClick(View view) { 
//      Mail m = new Mail("gmailusername@gmail.com", "password"); 
//
//      String[] toArr = {"bla@bla.com", "lala@lala.com"}; 
//      m.setTo(toArr); 
//      m.setFrom("wooo@wooo.com"); 
//      m.setSubject("This is an email sent using my Mail JavaMail wrapper from an Android device."); 
//      m.setBody("Email body."); 
//
//      try { 
//        m.addAttachment("/sdcard/filelocation"); 
//
//        if(m.send()) { 
//          Toast.makeText(MailApp.this, "Email was sent successfully.", Toast.LENGTH_LONG).show(); 
//        } else { 
//          Toast.makeText(MailApp.this, "Email was not sent.", Toast.LENGTH_LONG).show(); 
//        } 
//      } catch(Exception e) { 
//        //Toast.makeText(MailApp.this, "There was a problem sending the email.", Toast.LENGTH_LONG).show(); 
//        Log.e("MailApp", "Could not send email", e); 
//      } 
//    } 
//  }); 
//} 
//share|improve this answer
//answered Oct 19 '12 at 3:55
//
//droopie
//7615
//up vote
//5
//down vote
//I think u have use to this refrences this are simple code for send email with atttcahed in android
//
//And this app only work on devices
//
//http://blogingtutorials.blogspot.com/2010/12/send-email-with-attached-file-in.html
//
//share|improve this answer
//answered Dec 27 '10 at 5:47
//
//Ranjan
//5111
//up vote
//5
//down vote
//In order to help those getting a Network On Main Thread Exception with an SDK Target >9. This is using droopie's code above but will work similarly for any.
//
//android.os.NetworkOnMainThreadException
//
//You can use AsyncTask as below
//
//public void onClickMail(View view) {
//    new SendEmailAsyncTask().execute();
//}
//
//class SendEmailAsyncTask extends AsyncTask <Void, Void, Boolean> {
//    Mail m = new Mail("from@gmail.com", "my password");
//
//    public SendEmailAsyncTask() {
//        if (BuildConfig.DEBUG) Log.v(SendEmailAsyncTask.class.getName(), "SendEmailAsyncTask()");
//        String[] toArr = { "to mail@gmail.com"};
//        m.setTo(toArr);
//        m.setFrom("from mail@gmail.com");
//        m.setSubject("Email from Android");
//        m.setBody("body.");
//    }
//
//    @Override
//    protected Boolean doInBackground(Void... params) {
//        if (BuildConfig.DEBUG) Log.v(SendEmailAsyncTask.class.getName(), "doInBackground()");
//        try {
//            m.send();
//            return true;
//        } catch (AuthenticationFailedException e) {
//            Log.e(SendEmailAsyncTask.class.getName(), "Bad account details");
//            e.printStackTrace();
//            return false;
//        } catch (MessagingException e) {
//            Log.e(SendEmailAsyncTask.class.getName(), m.getTo(null) + "failed");
//            e.printStackTrace();
//            return false;
//        } catch (Exception e) {
//            e.printStackTrace();
//            return false;
//        }
//    }
//
